Import z Excel
Otázka od: Jan Sebelik
7. 9. 2004 10:50
Delam v Delphi import z Excel.
Zaboha se mi nedari Excel po skonceni importu zavrit.
Zustane viset v TaskManager.
Samozrejme tam mam "finally Excel := NULL"
Honza
====================================
= RNDr. Jan Sebelik - HAES
= Skolici a konzultacni stredisko pro vyvoj SW
= www.haes.cz
= Vojtiskova 321
= 507 81 Lazne Belohrad
= tel. 493 792 569 (mobil 776 347 735)
====================================
Odpovedá: Lasevic, Martin
7. 9. 2004 11:00
Ahoj,
Zkus ten Excel dat do nejakeho non-visible formu, ktery pak
shodis......pokud jej mas na MainFormu, tak se Excel shodi az po ukonceni
aplikace......delalo mi to jak na MSO 2K, tak na MSO 2k3
Martin Lasevic
> -----Original Message-----
> From: Jan Sebelik [mailto:honza@haes.cz]
> Sent: Tuesday, September 07, 2004 11:44 AM
> To: delphi-l@clexpert.cz
> Subject: Import z Excel
>
> Delam v Delphi import z Excel.
> Zaboha se mi nedari Excel po skonceni importu zavrit.
> Zustane viset v TaskManager.
> Samozrejme tam mam "finally Excel := NULL"
>
> Honza
> ====================================
> = RNDr. Jan Sebelik - HAES
> = Skolici a konzultacni stredisko pro vyvoj SW = www.haes.cz
> = Vojtiskova 321 = 507 81 Lazne Belohrad = tel. 493 792 569
> (mobil 776 347 735) ====================================
>
>
>
Odpovedá: Pavel Malinsky
7. 9. 2004 11:36
> -----Original Message-----
> From: delphi-l-owner@clexpert.cz
> [mailto:delphi-l-owner@clexpert.cz] On Behalf Of Jan Sebelik
>
> Delam v Delphi import z Excel.
> Zaboha se mi nedari Excel po skonceni importu zavrit.
> Zustane viset v TaskManager.
> Samozrejme tam mam "finally Excel := NULL"
Ahoj,
a treba takhle: Excel.Quit ?
S pozdravem a dikem
=====================================
> Pavel Malinsky; malinsky@pmcom.cz <
=====================================
> GSM: 602 652 203 | ICQ: 322015967 <
=====================================
Odpovedá: Petr Brant
7. 9. 2004 11:27
Delal jsem s Excelem pres OLE a matne si vzpominam, ze jsem pouzival snad
Excel.Quit nebo tak neco podobneho. Urcite to nebylo nic podobneho te tve
konstrukci.
RNDr. Petr Brant [brant@dcomm.cz]
http://brant.wz.cz
Delam v Delphi import z Excel.
Zaboha se mi nedari Excel po skonceni importu zavrit.
Zustane viset v TaskManager.
Samozrejme tam mam "finally Excel := NULL"
Odpovedá: Ondrej Kelle
7. 9. 2004 11:31
> Delam v Delphi import z Excel.
> Zaboha se mi nedari Excel po skonceni importu zavrit.
> Zustane viset v TaskManager.
> Samozrejme tam mam "finally Excel := NULL"
Ja tu mam kod na export do Excelu, ktory, pokial viem, funguje:
var
Excel, Workbook, Worksheet: Variant;
begin
Excel := CreateOleObject('Excel.Application');
try
Excel.SheetsInNewWorkbook := 1;
Workbook := Excel.Workbooks.Add;
try
Worksheet := Workbook.Sheets[1];
try
Worksheet.Name := 'Export';
Worksheet.Cells[1, 1] := 'User name';
...
finally
Worksheet := Unassigned;
end;
Workbook.SaveAs(FileName);
finally
Workbook.Close(False);
Workbook := Unassigned;
end;
finally
Excel.Quit;
Excel := Unassigned;
end;
end;
Myslim, ze je dolezite zavolat Workbook.Close a tiez Excel.Quit.
A tiez uvolnit vsetky pouzite referencie (vratane Workbook, Worksheet atd.)
priradenim Unassigned. Aj ked Delphi pre lokalne premenne typu Variant
(varDispatch) myslim generuje implicitny kod, ktory ich uvolni.
HTH
TOndrej
Odpovedá: Ludek ZITA
7. 9. 2004 11:39
On Behalf Of Jan Sebelik
> Zaboha se mi nedari Excel po skonceni importu zavrit.
> Zustane viset v TaskManager.
> Samozrejme tam mam "finally Excel := NULL"
>
Ahoj.
Ja koncim uspesne Excel takto:
if not VarIsEmpty(ExcelApp) then
begin
ExcelApp.DisplayAlerts := False;
ExcelApp.Quit;
end;
ExcelApp := '';
Ludek
Odpovedá: Lasevic, Martin
7. 9. 2004 11:23
Je zvlastni, ze Excel.Quit mi to vzdy zarvalo na nepodporovanou metodu OLE
objektu.......
> Delal jsem s Excelem pres OLE a matne si vzpominam, ze jsem
> pouzival snad Excel.Quit nebo tak neco podobneho. Urcite to
> nebylo nic podobneho te tve konstrukci.
>
> RNDr. Petr Brant [brant@dcomm.cz]
> http://brant.wz.cz
Odpovedá: Petr Vones
7. 9. 2004 11:43
From: "Jan Sebelik" <honza@haes.cz>
> Delam v Delphi import z Excel.
> Zaboha se mi nedari Excel po skonceni importu zavrit.
> Zustane viset v TaskManager.
Hledal bych nejakou jeho metodu Quit nebo Exit.
Petr Vones
Odpovedá: Petr Brant
7. 9. 2004 11:34
Nedalo mi to, tak jsem ten zdrojak vyhrabal:
var Exc: Variant;
Exc:= CreateOLEObject('Excel.Application');
Exc.DisplayAlerts:= false;
...
except
Memo.Lines.Add('Nelze spustit MS Excel.');
end;
...a tady likvidace:
if not VarIsEmpty(Exc) then Exc.Quit;
...chodi to doted, funguje to od W98 po XP a na Excelu od 97 do XP.
Zdravim
RNDr. Petr Brant [brant@dcomm.cz]
http://brant.wz.cz
Je zvlastni, ze Excel.Quit mi to vzdy zarvalo na nepodporovanou metodu OLE
objektu.......
> Delal jsem s Excelem pres OLE a matne si vzpominam, ze jsem pouzival
> snad Excel.Quit nebo tak neco podobneho. Urcite to nebylo nic
> podobneho te tve konstrukci.